﻿Imports Pop.Api.Request

Namespace Pop.Api

    ''' <summary>
    ''' POP客户端
    ''' </summary>
    Public Interface IPopClient

        ''' <summary>
        ''' 执行公开API请求。
        ''' </summary>
        ''' <typeparam name="T">领域对象</typeparam>
        ''' <param name="request">具体的POP API请求</param>
        ''' <returns>领域对象</returns>
        Function Execute(Of T As PopResponse)(ByVal request As IPopRequest(Of T)) As T

        ''' <summary>
        ''' 执行隐私API请求。
        ''' </summary>
        ''' <typeparam name="T">领域对象</typeparam>
        ''' <param name="request">具体的POP API请求</param>
        ''' <param name="uin">用户QQ号</param>
        ''' <param name="token">用户会话码</param>
        ''' <returns>领域对象</returns>
        Function Execute(Of T As PopResponse)(ByVal request As IPopRequest(Of T), ByVal uin As String, ByVal token As String) As T

        ''' <summary>
        ''' 执行隐私API请求。
        ''' </summary>
        ''' <typeparam name="T">领域对象</typeparam>
        ''' <param name="request">具体的POP API请求</param>
        ''' <param name="uin">用户QQ号</param>
        ''' <param name="token">用户会话码</param>
        ''' <param name="timestamp">请求时间戳</param>
        ''' <returns>领域对象</returns>
        Function Execute(Of T As PopResponse)(ByVal request As IPopRequest(Of T), ByVal uin As String, ByVal token As String, ByVal timestamp As DateTime) As T

    End Interface

End Namespace